Puntero: SUPER
El SUPER
puntero es una variable especial que se utiliza para la programación orientada a objetos.
SUPER
es el puntero de un bloque de funciones a la instancia de bloque de funciones base a partir de la cual se generó el bloque de funciones. El SUPER
puntero también permite el acceso a la implementación de los métodos del bloque de función base (clase base). A SUPER
El puntero está disponible automáticamente para cada bloque de función. Puedes usar SUPER
solo en métodos y en las implementaciones de bloques de funciones asociadas.
Desreferenciación del puntero: SUPER^
Utilizando el SUPER
puntero: con el SUPER
palabra clave, llama a un método que es válido en la instancia de la clase básica o clase principal.
S T
SUPER^.METH_DoIt();
FBD/CFC/LD

Uso de SUPER
y THIS
punteros
FUNCTION_BLOCK FB_Base VAR_OUTPUT iCnt : INT; END_VAR METHOD METH_DoIt : BOOL iCnt := -1; METHOD METH_DoAlso : BOOL METH_DoAlso := TRUE; FUNCTION_BLOCK FB_1 EXTENDS FB_Base VAR_OUTPUT iBase : INT; END_VAR THIS^.METH_DoIt(); //Call of the methods of FB_1 THIS^.METH_DoAlso(); SUPER^.METH_DoIt(); //Call of the methods of FB_Base SUPER^.METH_DoAlso(); iBase := SUPER^.iCnt; METHOD METH_DoIt : BOOL iCnt := 1111; METH_DoIt := TRUE; PROGRAM PLC_PRG VAR myBase : FB_Base; myFB_1 : FB_1; iTHIS : INT; iBase : INT; END_VAR myBase(); iBase := myBase.iCnt; myFB_1(); iTHIS := myFB_1.iCnt;
Sugerencia
THIS
aún no está implementado para la lista de instrucciones (IL).